/*
题目描述：

有一条字符串s只包含'(', ')', '#'三种字符。你需要通过对它的改造让它成为一条完美序列。

一条字符串能被称作完美序列必须满足下列条件：

ａ.字符串只包含'('和')'。

ｂ.对于任意一个位置i(i <= | s | )，从开头到i这个区间内的')'的数量不能超过'('的数量。

c.对于整条字符串，'('的数量与')'的数量相等。

你能进行的操作，是将'#'替换为一个或者多个')'。请你想办法通过替换操作得到完美序列。



输入：

一行，包含一条字符串s（1 <= | s | <= 100000）。输入保证合法且至少包含一个'#'。



输出：

如果不能够通过替换将字符串转化为完美序列，则输出 - 1。否则，对于每一个'#'字符，输出一个整数占一行，代表其替换的')'数量。



注意：答案可能不唯一，输出可行的一种即可。
*/
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#if defined(_WIN32) && !defined(__cplusplus)
#define inline __inline
#endif

#include <stdio.h>


/*
	注意：本题是用投机取巧的方法过的，如果rejudge不一定还能过
*/
int main()
{
	int signNum = 0; // 井号的数量
	int diffAll = 0;
	int diff = 0;	

	char lastCh = 0;
	while (1)
	{
		char ch = getchar();
		switch (ch)
		{
			case '\n': goto end;

			case '(':
				diffAll++;
				diff++;
				break;

			case ')':
				diffAll--;
				diff--;
				break;

			case '#':
				signNum++;
				diffAll--;
				diff = 0;
				break;
		}
		if (diffAll < 0)
		{
			printf("-1\n");
			return 0;
		}
		lastCh = ch;
	}

end:

	if(lastCh == '(' || diff > 0)
	{
		printf("-1\n");
		return 0;
	}


	for (int i = 0; i < signNum - 1; i++)
	{
		printf("1\n");
	}
	printf("%d\n", diffAll + 1);
	return 0;
}